// 定义了一个构造函数名字为Promise
function Promise(executor){
	// 需要验证接收过来的数据是否为一个函数
	if(!(executor instanceof Function)){
		throw new Error("executor必须是一个函数");
	}
	// 增加实例属性state,设置初始值为pending
	this.state = "pending";
	// 增加实例属性result,设置初始值为undefined
	this.result = undefined;
	// this希望指向的是Promise实例，以下是undefined
	// 方案1：bind 建议
	// executor(function(value){
	// 	// 将state更改为fulfilled
	// 	this.state = "fulfilled";
	// 	// 将接收的值作为成功值
	// 	this.result = value;
	// }.bind(this));
	
	// 方案2：that
	// const that = this
	// executor(function(value){
	// 	// 将state更改为fulfilled
	// 	that.state = "fulfilled";
	// 	// 将接收的值作为成功值
	// 	that.result = value;
	// });
	
	// 方案3- 箭头函数
	executor((value)=>{
		// 将state更改为fulfilled
		this.state = "fulfilled";
		// 将接收的值作为成功值
		this.result = value;
	},(value)=>{
		this.state = "rejected";
		this.result = value;
	});
	
}
// 以默认的形式将Promise进行导出
export default Promise;